package br.ucb.sigplan.crud;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import br.ucb.sigplan.beans.Atividade;
import br.ucb.sigplan.dao.AtividadeDAO;
import br.ucb.sigplan.dao.impl.AtividadeDAOImpl;
import br.ucb.sigplan.exception.DAOException;

public class AtividadeCrud {
	private static AtividadeDAO atividadeDAO;
	
	private AtividadeCrud (){
		
	}
	
	public static AtividadeDAO getAtividadeDAO() {
		if (atividadeDAO == null) {
			atividadeDAO = new AtividadeDAOImpl();
		}
		return atividadeDAO;
	}
	
	public static void insert(Atividade atividade) throws DAOException{
		getAtividadeDAO().insert(atividade);
	}
	
	public static List<Atividade> findAll(){
		return getAtividadeDAO().findAll();
	}
	
	public static Atividade searchById(Integer idatividade) throws DAOException{
		return getAtividadeDAO().searchById(idatividade);
	}
	
	public static void insertAll(List<Atividade> atividades) throws DAOException{
		for (Atividade atividade : atividades) {
			insert(atividade);
		}
	}
	
	public static Atividade searchByData(Calendar data){
		return getAtividadeDAO().searchByData(data);
	}
	
	public static List<Atividade> searchByTurma(Integer idTurma){
		return getAtividadeDAO().searchByTurma(idTurma);
	}
	
	public static void findAllAtividades(List<Atividade> atividades) throws DAOException {
		List<Atividade> atividadesRet = new ArrayList<Atividade>();
		for (Atividade atividade : atividades) {
			atividadesRet.add( searchByData(atividade.getData()));
		}
	}
}
